//
//  RootViewController.swift
//  新浪微博
//
//  Created by MBP on 16/5/10.
//  Copyright © 2016年 MBP. All rights reserved.
//

import UIKit
import HMRefresh

class RootViewController: UIViewController {
    
    

    //创建视图
    var tableView: UITableView?
    //刷新控件
    var refreshControl: HMRefreshControl?
    
    //访客控制器
    var visitorView: VisitorView?
    
    override func loadView() {
        
        // 创建根视图
        view = UIView()
        
        //判断用户状态, 根据不同结果显示不同控制器
        UserAccount.sharedUserAccount.isLogin ? setupTableView() : setupVisitorView()

    }
    override func viewDidLoad() {
        super.viewDidLoad()
        
        //如果没有登录注册通知
        if UserAccount.sharedUserAccount.isLogin {
            loadData()
        }else {
            NSNotificationCenter.defaultCenter().addObserver(
                self,
                selector: #selector(RootViewController.loginSuccess),
                name: PNWeiboLoginSuccessedNotification,
                object: nil)
        }
        
    }
    //加载tableView数据
    func loadData() {}
    
    //登录成功, 通知调用
    @objc private func loginSuccess() {
        view = nil
        //移除通知
        NSNotificationCenter.defaultCenter().removeObserver(self, name: PNWeiboLoginSuccessedNotification, object: nil)
    }

}

//设置界面
extension RootViewController {
    
    //设置访客视图
    private func setupVisitorView() {
        visitorView = VisitorView()
        
        // 设置代理
        visitorView?.delegate = self
        
        view = visitorView
        
        navigationItem.leftBarButtonItem = UIBarButtonItem(title: "注册", style: .Plain, target: self, action: #selector(RootViewController.visitorViewDidRegister))
        navigationItem.rightBarButtonItem = UIBarButtonItem(title: "登录", style: .Plain, target: self, action: #selector(RootViewController.visitorViewDidLogin))
    }
    
    
    //设置tableView
    private func setupTableView() {
        tableView = UITableView(frame: CGRectZero, style: .Plain)
        
        view.addSubview(tableView!)
        
        // 自动布局－让子视图和根视图同样大小！
        tableView?.snp_makeConstraints { (make) -> Void in
            make.edges.equalTo(view)
        }
        
        // 设置数据源
        tableView?.dataSource = self
        tableView?.delegate = self
    }
    //设置刷新控件的控制器, 由需要用到刷新功能的子控制器通过重写方法的形式调用
    func setupRefreshControl() {
        
        // 如果 tableView 不存在，直接返回
        guard let tableView = tableView else {
            return
        }
        
        //刷新控件存在, 则返回
        if refreshControl != nil {
            return
        }
        refreshControl = HMRefreshControl()
        tableView.addSubview(refreshControl!)
        
        //设置下拉刷新视图
        refreshControl?.pulldownView = PNPullRefreshView.refreshView()
        refreshControl?.normalString = "下拉起飞"
        refreshControl?.pullingString = "放开起飞"
        refreshControl?.refreshingString = "正在起飞"
        refreshControl?.lastRefreshString = "末次 "
        
        
        refreshControl?.addTarget(self, action: #selector(RootViewController.loadData), forControlEvents: .ValueChanged)
    }
}

// dataSorce、 dalegate
extension RootViewController: UITableViewDataSource, UITableViewDelegate {
    func numberOfSectionsInTableView(tableView: UITableView) -> Int {
        return 1
    }
    
    func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return 0
    }
    
    func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
        return UITableViewCell()
    }
//    //实现上拉加载方法
//    func tableView(tableView: UITableView, willDisplayCell cell: UITableViewCell, forRowAtIndexPath indexPath: NSIndexPath) {
//        //获取将要显示的组.No
//        let section = tableView.numberOfSections - 1
//        //获取将要显示的行.No
//        let row = tableView.numberOfRowsInSection(section) - 1
//        if section == indexPath.section && row == indexPath.row && !pullUpView.isAnimating(){
//            //启动动画
//            pullUpView.startAnimating()
//            //调用获取数据方法
//            loadData()
//        }
//    }
}

extension RootViewController: VisitorViewDelegate {
    //注册
    func visitorViewDidRegister() {
        print("注册")
    }
    //登录
    func visitorViewDidLogin() {
        print("登录")
        
        let oauthVC = OAuthViewController()
        let nav = UINavigationController(rootViewController: oauthVC)
        
        presentViewController(nav, animated: true, completion: nil)
        
    }
}






